package drugdealer.dados;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;

public class Consulta {
	
	private int codigo;
	private Medico medico;
	private Paciente paciente;
	private String cid;
	private String diagnostico;
	private Date data;
	private Vector<Solicitacao> solicitacoes;
	
	/**
	 * 
	 * @param codigo
	 * @param cid
	 * @param diagnostico
	 * @param data
	 */
	public Consulta(int codigo, Paciente paciente, Medico medico, String cid,
			String diagnostico, Date data) {
		this.codigo = codigo;
		this.paciente = paciente;
		this.medico = medico;
		this.cid = cid;
		this.diagnostico = diagnostico;
		this.data = data;
		this.solicitacoes = new Vector<Solicitacao>();
	}

	/**
	 * @return the cid
	 */
	public String getCID() {
		return this.cid;
	}
	/**
	 * 
	 * @param cid
	 */
	public void setCID(String cid) {
		this.cid = cid;
	}

	/**
	 * 
	 * @return
	 */
	public int getCodigo() {
		return codigo;
	}
	
	/**
	 * 
	 * @param codigo
	 */
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	
	/**
	 * 
	 * @return
	 */
	public Date getData() {
		return data;
	}
	
	/**
	 * 
	 * @param data
	 */
	public void setData(Date data) {
		this.data = data;
	}
	
	/**
	 * 
	 * @return
	 */
	public String getFormatedData() {
		return (new SimpleDateFormat("dd/MM/yyyy")).format(this.data);
	}
	
	/**
	 * 
	 * @return
	 */
	public String getDiagnostico() {
		return diagnostico;
	}
	/**
	 * 
	 * @param diagnostico
	 */
	public void setDiagnostico(String diagnostico) {
		this.diagnostico = diagnostico;
	}
	
	/**
	 * 
	 * @return
	 */
	public Iterator getSolicitacoes() {
		Iterator it = null;
		if (this.solicitacoes != null)
			it = this.solicitacoes.iterator();
		return it;
	}
	
	/**
	 * 
	 * @param solicitacoes
	 */
	public void setSolicitacoes(Vector<Solicitacao> solicitacoes) {
		this.solicitacoes = solicitacoes;
	}
	
	/**
	 * 
	 * @param solicitacoes
	 */
	public void setSolicitacoes(Iterator solicitacoes) {
		this.solicitacoes.clear();
		while(solicitacoes.hasNext())
			this.solicitacoes.add((Solicitacao) solicitacoes.next());
	}
	
	/**
	 * 
	 * @param solicitacao
	 */
	public void inserirSolicitacao(Solicitacao solicitacao){
		this.solicitacoes.add(solicitacao);
	}
	
	/**
	 * 
	 * @param solicitacao
	 */
	public void removerSolicitacao(Solicitacao solicitacao){
		this.solicitacoes.removeElement(solicitacao);
	}

	
	/**
	 * 
	 * @return
	 */
	public String toString(){
		return "codigo = " + this.codigo + "\nCID = " + this.cid +
			"\ndiagnostico = " + this.diagnostico + 
			"\ndata = " + this.getFormatedData(); 
	}

	/**
	 * @return the medico
	 */
	public Medico getMedico() {
		return medico;
	}

	/**
	 * @param medico the medico to set
	 */
	public void setMedico(Medico medico) {
		this.medico = medico;
	}

	/**
	 * @return the paciente
	 */
	public Paciente getPaciente() {
		return paciente;
	}

	/**
	 * @param paciente the paciente to set
	 */
	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}
	
}
